package com.yaxin.outsourcing.domain.po;

import com.baomidou.mybatisplus.annotation.*;
import com.yaxin.outsourcing.enums.PersonStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 外协人员信息表
 * </p>
 *
 * @author zcc
 * @since 2025-07-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("outsourcing_person")
public class OutsourcingPerson implements Serializable {

    /**
     * 人员ID - 主键，自增
     */
    @TableId(value = "per_id", type = IdType.AUTO)
    private Long perId;

    /**
     * 所属申请单ID
     */
    private Long appId;

    /**
     * 申请单号
     */
    @TableField(exist = false)
    private String appNo;

    /**
     * 姓名
     */
    private String userName;

    /**
     * 身份证号
     */
    private String idCard;

    /**
     * 联系方式
     */
    private String userPhone;

    /**
     * IC卡编号
     */
    private String icNo;

    /**
     * 进厂时间
     */
    private LocalDateTime entryTime;

    /**
     * 结束时间
     */
    private LocalDateTime endTime;

    /**
     * 身份证正面照片
     */
    private String idCardFront;
    @TableField(exist = false)
    private String idCardFrontUrl;

    /**
     * 身份证反面照片
     */
    private String idCardBack;
    @TableField(exist = false)
    private String idCardBackUrl;

    /**
     * 2寸免冠照片
     */
    private String portraitPhoto;
    @TableField(exist = false)
    private String portraitPhotoUrl;

    /**
     * 状态（1-正常，0-失效）
     */
    private PersonStatus status;

    /**
     * 新增时间
     */
    private LocalDateTime createTime;

    /**
     * 修改日期
     */
    private LocalDateTime updateTime;

    /**
     * 新增人员
     */
    private String createdBy;

    /**
     * 修改人员
     */
    private String updatedBy;

    /**
     * 新增人员
     */
    @TableField(exist = false)
    private String createdByUser;

    /**
     * 修改人员
     */
    @TableField(exist = false)
    private String updatedByUser;

    /**
     * 是否删除（0-未删除，2-已删除）
     */
    @TableLogic
    private Integer isDeleted;

    /**
     * 外协单位名称
     */
    @TableField(exist = false)
    private String companyName;

    /**
     * 外协单位工作区域
     */
    @TableField(exist = false)
    private String workArea;

    /**
     * 照片数
     */
    @TableField(exist = false)
    private String photoCount;

    /**
     * base64头像
     */
    @TableField(exist = false)
    private String portraitPhotoBase64;
}
